package pl.skubicha.service;

import java.util.List;

import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;

import pl.skubicha.domain.Subjects;
import pl.skubicha.exceptions.EntityConstraintException;
import pl.skubicha.exceptions.SubjectNotFoundException;
import pl.skubicha.response.SubjectDTO;

public interface SubjectService {

	public Page< Subjects > findAll( Pageable page );

	public Page< Subjects > findAllMatching( String searchString, Pageable page );

	public List< Subjects > findAllSubjectsForGroup( Integer id );

	public Subjects findById( Integer id ) throws SubjectNotFoundException;

	public Subjects create( SubjectDTO created );

	public Subjects update( SubjectDTO updated ) throws SubjectNotFoundException;

	public Subjects delete( Integer groupId ) throws SubjectNotFoundException, EntityConstraintException;
}